我正在编写一个Firefox扩展,它需要知道当前登录用户在Windows、Mac或Linux中的用户名。所以如果我以“brh”身份登录我的机器,它会返回“brh”。知道如何通过扩展JavaScript做到这一点吗? 最佳答案 Firefox扩展按照与页面中运行的普通JavaScript不同的规则运行:绝对有可能找到当前用户。打开错误控制台(在工具中)并输入:Components.classes["@mozilla.org/process/environment;1"].getService(Components.interfaces
要加密Chrome扩展程序以免暴露源代码吗? 最佳答案 您可以使用混淆器隐藏您的代码。市场上有很多。像GoogleClosure编译器这样的工具很少,市场上有很多在线javascript开发者。你可以使用任何。但不保证代码的secret性。任何精通JavaScript的人都可以对该代码进行去混淆处理。这里有两种方法:1.通过网络服务提供您的功能。如此重要的代码驻留在服务器上,扩展将与服务器通信并处理服务器的输出。2.使用NPAPI,但不是一个好方法。在我看来,一个好的策略是尝试为用户提供良好的扩展。如果市场上已经有很棒的东西,没有人
我在chrome扩展弹出窗口中有一个简单的javascript表单。单击扩展程序图标时,用户填写表单并单击“开始!”,这将打开一个新选项卡-这个新选项卡的URL将根据表单中的值确定。目前弹出窗口显示正常,表单值填充正常。如何在用户单击按钮时打开选项卡?(我对javascript很陌生,文档把我搞糊涂了:|)list.json:{"name":"MyHelper","version":"1.0","description":"MyHelper","background_page":"background.html","browser_action":{"default_icon":"ic
所以我想在选项卡重新加载到指定的URL时运行脚本。它几乎可以工作,但实际上id没有:)这是我的list文件:{"manifest_version":2,"name":"SampleExtension","description":"SampleChromeExtension","version":"1.0","content_scripts":[{"matches":["http://translate.google.hu/*"],"js":["run.js"]}],"permissions":["activeTab","tabs"],"browser_action":{"defaul
我正在尝试创建一个扩展,该扩展将在页面显示到屏幕之前摆脱某些页面元素(通过id或类)。我尝试在文档上使用事件监听器,并将“DOMContentLoaded”作为事件,但javascript似乎在页面显示给用户后执行,然后将其删除,因此它不像我想要的那样流畅(不显示不需要的内容完全没有)document.addEventListener("DOMContentLoaded",function(){varelements=document.getElementsByClassName("header-nav-item");while(elements.length>0){elements[
我正在尝试用一种新方法扩展javascriptpromise。在这种情况下,这个新方法称为foo,它实际上执行如下操作:Promise.foo=function(arg){returnthis.then(function(result){returnresult.foo(arg);});};所以简而言之,foo()函数是等待promise解决然后在结果上调用foo()的快捷方式。这个函数的本质是它可以被链接起来,就像then()一样。myPromise.foo(a).foo(b).foo(c);我觉得这应该是可能的,但我只是不确定正确的路径是什么。这是我试过的:varFooPromis
使用内容脚本,您可以将脚本标记注入(inject)DOM以访问原始页面中的变量(asexplainedinthisquestion)。我想避免将我的代码注入(inject)每个页面,而是仅在用户点击扩展程序图标时才这样做。当我尝试使用与内容脚本相同的代码时,尽管已正确插入脚本,但值未定义。这可能吗?否则使用内容脚本并与其通信是首选解决方案吗?这是我使用的代码:varscr=document.createElement("script");scr.type="text/javascript";scr.innerHTML="setInterval('console.log(window.t
我正在尝试为某个网站执行内容脚本(插入按钮或更改链接),但我想在用户浏览网站时执行此操作。问题在于网页是在用户浏览时使用ajax请求动态构建的。我之前在编写的扩展程序中解决了这个问题,方法是将我的JavaScript实际注入(inject)到网页中。我想知道是否有更好的选择,除了能够在我的内容脚本中注册一个ajaxComplete事件或类似的东西,以便我可以重新执行。我可以做以下事情:functionlistener(){console.debug("listenerfired.");}document.addEventListener("DOMSubtreeModified",lis
我正在参与Chrome扩展程序的开发。在某些时候,我们需要运行一些静态的非生成代码,这些代码必须在页面而不是扩展的上下文中运行。对于简单的脚本,没有问题,使用$.getScript(chrome.extension.getURL(....))或者script=document.createElement('script');...document.body.appendChild(脚本);对于更复杂的脚本,我们有时需要包含jquery本身或其他一些脚本定义(因为依赖关系)。尽管在后一种情况下,尽管Javascript应该是单线程的,但似乎在运行依赖脚本时JQuery并未完全解析,导致以
我有一个原型(prototype)模型,我需要在原型(prototype)中包含以下扩展方法:String.prototype.startsWith=function(str){return(this.indexOf(str)===0);}例子:[JS]sample=function(){this.i;}sample.prototype={get_data:function(){returnthis.i;}}在原型(prototype)模型中,如何使用扩展方法或任何其他方式在JS原型(prototype)模型中创建扩展方法。 最佳答案